﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace ASelect.Service.Contracts
{
    /// <summary>
    /// The IASelectService interface defines the service contract
    /// that a service should conform to when implementing the
    /// service.
    /// </summary>
    [ServiceContract(Namespace = "http://localhost/Services/ASelect")]
    public interface IASelectService
    {
        /// <summary>
        /// Check the login details and return the result.
        /// </summary>
        /// <param name="nummer">The numer of the entity</param>
        /// <param name="passwordHash">The password hash</param>
        /// <returns>A value from the LoginResult enumeration</returns>
        [OperationContract]
        LoginResult Login(string number, string passwordHash);

        /// <summary>
        /// Fetch the details of an account from the database.
        /// </summary>
        /// <param name="nummer">The number of the entity</param>
        /// <returns>A filled AccountDetails object</returns>
        [OperationContract]
        AccountDetails GetAccountDetails(string number);
    }
}
